package map;



import org.newdawn.slick.SlickException;
import org.newdawn.slick.tiled.TiledMap;

/**
 * Manager map.
 * Wszystkie operacje zwiazane z mapami odbywaja sie tutaj.
 * @author Daniel Schmidt
 *
 */
public class MapManager {
	private Map mapa;
	private TiledMap plikMapy;
	
	/**
	 * Wczytywane sa rozmiary mapy i jej elementy, ktore musza zostac wyslane do klienta
	 * @param iloscMap
	 * @throws SlickException
	 * @author Daniel Schmidt
	 */
	 public void loadMaps(int iloscMap) throws SlickException{
		 
		 for(int i=0;i<iloscMap;i++){
			 plikMapy = new TiledMap("SCIEZKA DO PLIKU"+Integer.toString(i)+".tmx");
			 mapa = new Map(plikMapy.getWidth(),plikMapy.getHeight());
			 //ID mapy to po prostu jej numer
			 mapa.id = i;  
			           for (int xAxis=0;xAxis<plikMapy.getWidth(); xAxis++)
			           {
			              for (int yAxis=0;yAxis<plikMapy.getHeight(); yAxis++)
			              {
			            	  //TODO: Dokonczyc wczytywanie informacji o mapie
			            	  //Najpierw przy 'okazji' zerujemy tablice kolizji dla mapy
			            	  mapa.mapCollisions[xAxis][yAxis] = 0;
			            	  int tileID = plikMapy.getTileId(xAxis, yAxis, 3);
			                  String value = plikMapy.getTileProperty(tileID, "block", "false");
			                  if ("true".equals(value))
			                  {
			                	  //Jesli wartosc dla pola na warstwie trzeciej = true to dodajemy
			                	  //do tablicy wartosc 1
			                	  mapa.mapCollisions[xAxis][yAxis] = 1;
			                  }
			                 
		                }
	                      }
			//Po skonczeniu analizy pojedynczej mapy na koncu dodajemy ja do listy map
			//A petla analizuje kolejna
		    Map.mapList.add(mapa);
         }
     }
}
